/**
 * 添加marker
 *    入参：
 *          1、markerConfig        添加标注配置项,options是marker配置项（以下是常用属性，具体配置请看官网 https://mapopen-pub-jsapi.bj.bcebos.com/jsapi/reference/jsapi_reference_3_0.html#a3b3）
 *                {
 *                  map: object       地图实例
*                   id: string        标注点id
                    lng: number       经度
                    lat: number       纬度
                    ...               其他
*                 }
 *          2、options             options是marker配置项（以下是常用属性，具体配置请看官网 https://mapopen-pub-jsapi.bj.bcebos.com/jsapi/reference/jsapi_reference_3_0.html#a3b3）
 *          3、callback            回调函数
 *    返参：
 *          1、callback函数中的值（AddmarkerData接口中的内容）
 *
 *    Demo:
 *          BMAP_ADDMARKER({ map: map, id: 1, lng: 116.904, lat: 39.415 }, { enableDragging: true })
 * */
export const BMAP_ADDMARKER = (markerConfig, options, callback) => {
  const { map, lng, lat, id } = markerConfig
  const point = new BMapGL.Point(lng, lat)
  const marker = new BMapGL.Marker(point, options)
  callback && callback(marker)
  // map.addOverlay(marker) // 将标注添加到地图中（使用点聚合无需使用该行代码）
  // 点击marker
  const obj = { type: 0, data: '' }
  marker.addEventListener('click', e => {
    obj.type = 1
    obj.data = { ...e, id }
    // console.log('--您点击了marker--', obj)
    callback && callback(obj)
  })

  // 拖拽marker
  if (options?.enableDragging) {
    marker.addEventListener('dragend', e => {
      obj.type = 3
      obj.data = { ...e, id }
      // console.log('--您拖拽了marker--', obj)
      callback && callback(obj)
    })
  }
}
